home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
comm
/
mail
/
xsig11.lha
/
XSigGetGroup.mod
< prev
next >
Wrap
Text File
|
1994-06-26
|
3KB
|
104 lines
(* :Version. $VER: XSigGetGroup_Source 0.7 (15.05.94)" *)
MODULE XSigGetGroup;
(*$ DEFINE BETA:=FALSE *)
IMPORT Arguments;
IMPORT Arts;
IMPORT DosD,DosL;
IMPORT Heap;
IMPORT SYSTEM;
CONST
vers="$VER: XSigGetGroup" (*$ IF BETA *) +"_BETA" (*$ ENDIF *) +" 1.0 (15.05.94)\o";
VAR
len: INTEGER;
arg: ARRAY[0..255] OF CHAR;
newsfile: DosD.FileHandlePtr;
buffer: POINTER TO ARRAY[0..99999999] OF CHAR;
act,i,j,size: LONGINT;
BEGIN
newsfile:=NIL;
buffer:=SYSTEM.ADR(vers);
IF Arguments.NumArgs()#1 THEN
Arts.Exit(10);
END;
Arguments.GetArg(1,arg,len);
newsfile:=DosL.Open(SYSTEM.ADR(arg),DosD.readOnly);
IF newsfile=NIL THEN
Arts.Exit(10);
END;
size:=DosL.Seek(newsfile,0,DosD.end);
size:=DosL.Seek(newsfile,0,DosD.beginning);
Heap.Allocate(buffer,size+16);
IF buffer=NIL THEN
Arts.Exit(10);
END;
act:=DosL.Read(newsfile,buffer,size);
DosL.Close(newsfile);
newsfile:=NIL;
FOR i:=0 TO size-1 DO
IF ( (buffer^[i ]="\n") AND
((buffer^[i+ 1]="N") OR (buffer^[i+ 1]="n")) AND
((buffer^[i+ 2]="E") OR (buffer^[i+ 2]="e")) AND
((buffer^[i+ 3]="W") OR (buffer^[i+ 3]="w")) AND
((buffer^[i+ 4]="S") OR (buffer^[i+ 4]="s")) AND
((buffer^[i+ 5]="G") OR (buffer^[i+ 5]="g")) AND
((buffer^[i+ 6]="R") OR (buffer^[i+ 6]="r")) AND
((buffer^[i+ 7]="O") OR (buffer^[i+ 7]="o")) AND
((buffer^[i+ 8]="U") OR (buffer^[i+ 8]="u")) AND
((buffer^[i+ 9]="P") OR (buffer^[i+ 9]="p")) AND
((buffer^[i+10]="S") OR (buffer^[i+10]="s")) AND
((buffer^[i+11]=":") OR (buffer^[i+11]=":")) AND
(buffer^[i+12]=" ")
) OR (
(i=0) AND
((buffer^[i ]="N") OR (buffer^[i ]="n")) AND
((buffer^[i+ 1]="E") OR (buffer^[i+ 1]="e")) AND
((buffer^[i+ 2]="W") OR (buffer^[i+ 2]="w")) AND
((buffer^[i+ 3]="S") OR (buffer^[i+ 3]="s")) AND
((buffer^[i+ 4]="G") OR (buffer^[i+ 4]="g")) AND
((buffer^[i+ 5]="R") OR (buffer^[i+ 5]="r")) AND
((buffer^[i+ 6]="O") OR (buffer^[i+ 6]="o")) AND
((buffer^[i+ 7]="U") OR (buffer^[i+ 7]="u")) AND
((buffer^[i+ 8]="P") OR (buffer^[i+ 8]="p")) AND
((buffer^[i+ 9]="S") OR (buffer^[i+ 9]="s")) AND
((buffer^[i+10]=":") OR (buffer^[i+10]=":")) AND
(buffer^[i+11]=" ")
) THEN
j:=i+13;
IF i=0 THEN
j:=12;
END;
WHILE (buffer^[j]#",") AND (buffer^[j]#" ") AND (buffer^[j]#"\n") DO
act:=DosL.Write(DosL.Output(),SYSTEM.ADR(buffer^[j]),1);
INC(j);
END;
Arts.Exit(0);
END;
END;
CLOSE
IF newsfile#NIL THEN
DosL.Close(newsfile);
END;
END XSigGetGroup.mod